/*
 *  Autor: Jailson Lima ( PortalDocs )
 *
 *  Data: 29/03/2013
 *
 *  Arquivo: ReadSequentialDocument.java
 *
 *  Descrição: Implementa uma classe para realizar a leitura de arquivos.
 *
 */



import java.io.FileInputStream;
import java.io.EOFException;
import java.io.IOException;
import java.io.ObjectInputStream;

public class ReadSequentialDocument
{
   private ObjectInputStream input;

   public void openFile( String title )
   {
      try
      {
         String path = "DataBase\\" + title + ".ser";

         input = new ObjectInputStream( new FileInputStream( path ) );
      }
      catch ( IOException ioException )
      {
         // JOptionPane.showMessageDialog( null, "Erro ao abrir o banco de dados." );
      }
   }

   public Document readRecords()
   {
      Document document = null;

      try
      {
         document = ( Document ) input.readObject();
      }
      catch ( ClassNotFoundException classNotFoundException )
      {
         // JOptionPane.showMessageDialog( null, "Erro! Estrutura de Dados não encontrada." );
         document = null;
      }
      catch ( IOException ioException )
      {
         // JOptionPane.showMessageDialog( null, "Erro durante a leitura do Banco de Dados." );
         document = null;
      }
      catch ( NullPointerException nullPoiterException )
      {
         // Uma NullPointerException será lançada se o arquivo não existir, pois nesse caso o método openFile irá
         // configurar input como null, e assim a instrução input.readObject() lançará uma exceção.
         // JOptionPane.showMessageDialog( null, "Erro! Banco de Dados não encontrado." );
         document = null;
      }
      finally
      {
         return document;
      }
   }

   public void closeFile()
   {
      try
      {
         if ( input != null )
            input.close();
      }
      catch ( IOException ioException )
      {
         // System.err.println( "Erro ao fechar o banco de dados." );
      }
   }

}